using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._TopographicProductionTools._DataManagement._Geodatabase
{
    /// <summary>
    /// <para>Import MGCP Metadata</para>
    /// <para>Imports Multinational Geospatial Co-production Program (MGCP) metadata into an MGCP database to perform maintenance on cells and subregions.</para>
    /// <para>将多国地理空间联合生产计划 （MGCP） 元数据导入 MGCP 数据库，以对单元和子区域执行维护。</para>
    /// </summary>    
    [DisplayName("Import MGCP Metadata")]
    public class ImportMetadata : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public ImportMetadata()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_files">
        /// <para>Metadata Files</para>
        /// <para>The XML files that contain the metadata to import.</para>
        /// <para>包含要导入的元数据的 XML 文件。</para>
        /// </param>
        /// <param name="_in_cell_features">
        /// <para>Cell Features</para>
        /// <para>The Cell feature class where the metadata will be imported.</para>
        /// <para>将导入元数据的 Cell 要素类。</para>
        /// </param>
        public ImportMetadata(List<object> _files, object _in_cell_features)
        {
            this._files = _files;
            this._in_cell_features = _in_cell_features;
        }
        public override string ToolboxName => "Topographic Production Tools";

        public override string ToolName => "Import MGCP Metadata";

        public override string CallName => "topographic.ImportMetadata";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_files, _in_cell_features, _out_cells];

        /// <summary>
        /// <para>Metadata Files</para>
        /// <para>The XML files that contain the metadata to import.</para>
        /// <para>包含要导入的元数据的 XML 文件。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Metadata Files")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public List<object> _files { get; set; }


        /// <summary>
        /// <para>Cell Features</para>
        /// <para>The Cell feature class where the metadata will be imported.</para>
        /// <para>将导入元数据的 Cell 要素类。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Cell Features")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_cell_features { get; set; }


        /// <summary>
        /// <para>Output Cell Features</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Cell Features")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_cells { get; set; }


        public ImportMetadata SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}